package com.chaike.hsq.bean.request.pay;

import com.chaike.hsq.bean.request.BaseHsqRequest;
import com.chaike.hsq.bean.response.pay.AppletsPayNotifyResponse;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;

import java.io.Serializable;

/**
 * 慧收钱 支付 公共通知参数.
 *
 * @author Luo
 * @version 1.0
 * @date 2021-10-14 10:36
 */
@Data
@Slf4j
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PayNotifyRequest extends BaseHsqRequest<AppletsPayNotifyResponse> implements Serializable {

    private static final long serialVersionUID = -6811550517417623460L;

    /**
     * <pre>
     * 字段名：方法名称.
     * 变量名：method
     * 是否必填：是
     * 类型：string[1,32]
     * 描述：
     *    CALLBACK
     * </pre>
     */
    private String method;

    /**
     * <pre>
     * 字段名：版本号.
     * 变量名：version
     * 是否必填：是
     * 类型：string[1,16]
     * 描述：
     *    接口版本：1.0
     * </pre>
     */
    private String version;

    /**
     * <pre>
     * 字段名：请求格式.
     * 变量名：format
     * 是否必填：是
     * 类型：string
     * 描述：
     *    JSON/XML
     * </pre>
     */
    private String format;

    /**
     * <pre>
     * 字段名：商户号.
     * 变量名：merchantNo
     * 是否必填：是
     * 类型：string[1,16]
     * 描述：
     *    商户在慧收钱的商户号，由慧收钱生成并下发
     * </pre>
     */
    private String merchantNo;

    /**
     * <pre>
     * 字段名：加密类型.
     * 变量名：signType
     * 是否必填：是
     * 类型：string[1,16]
     * 描述：
     *    默认：CFCA
     * </pre>
     */
    private String signType;

    /**
     * <pre>
     * 字段名：加密数据.
     * 变量名：signContent
     * 是否必填：是
     * 类型：string
     * 描述：
     *    业务请求参数，当加密类型为CFCA时，此字段上送加密后密文
     * </pre>
     */
    private String signContent;

    /**
     * <pre>
     * 字段名：签名数据.
     * 变量名：sign
     * 是否必填：否
     * 类型：string[1,128]
     * 描述：
     *    签名数据
     * </pre>
     */
    private String sign;

    /**
     * 获取请求方法的名称.
     *
     * @return 方法名称
     */
    @Override
    public String getMethodName() {
        return method;
    }

}
